Если у вас есть аккаунт в соц. сети ВКонтакте, тогда вы можете объединить его с вашим аккаунтом на XGM. Это делается на этой страничке xgm.guru/auth-settings
или могу вручную сбросить пароль отправив новый на почту указанную в профиле.
Nyanta, для начала дебаг сделать как написано в статье
Сделал. Триггер работает как нужно. При входе всегда пишет "Вход!", при выходе - "Выход!". Порядок текста не меняется.
В общем, проблема, почему-то, была в названии анимации. Открыл модель через MdlVis и назвал анимации "родными" словами Stand, Walk, Death. Стало работать как надо.
Спасибо Rare за Rare:
ставь скорость анимации на 0%
И nvc123 за то, что натолкнул на мысль этим) nvc123:
Как я понимаю - проблема в не заданном начальном состоянии(а может быть и нет, я не уверен). Информация о рескейлинге есть на момент начала анимации(599 кадр), а информация о используемом материале (повороте модели в последствии) появляется только на 600. Вероятно инструкции о том что делать с моделью определяются по ходу требования(а не хранятся в файле самой модели, как я думал) и на основании данных по требуемому кадру. Нельзя так просто взять и вникнуть в mdx формат. А, впрочем, я могу ошибаться.
Сделал анимации не пересекающимися (0-399 "stand", 400-599 "death", 600-799 "birth"), изменение скейла
Как это сделано у меня в страннике:
Есть области, 1 для каждого НПС,
Есть группа, куда записаны все НПС.
Есть таймер с периодичностью в 3 секунды. Каждый раз идет проверка. Проверятся, что НПС состоит в группе и если случайное число 0-100 меньше и равно 50, то НПС двигается в случайную точку в своей области.
Когда герой начинает говорить, НПС останавливает свой приказ, поворачивается к герою и удаляется из группы, чтобы когда таймер сработал он не убежал.
Соответственно когда разговор окончен, НПС снова добавляется в эту группу.
Все просто.
Отредактировать модель и переименовать анимацию Stand 2 например в Spell. Или скопировать, чтобы не терять оригинал Stand 2.
Принудительно проиграть в триггерах анимацию по индексу анимации.
Видишь ли, если ты просто проиграешь анимацию Stand, то, если у юнита есть несколько таких анимаций (относится и к Attack 1/2/3), проигрывается случайная анимация. Однако у каждой анимации есть свой индекс, и можно с помощью jass проиграть нужную тебе анимацию. Но для этого тебе надо знать этот индекс.
Используй: call SetUnitAnimationByIndex(Твой юнит, Индекс ). Пример "call SetUnitAnimationByIndex(u, 2 )".
Я не знаю, как узнать индекс анимации с помощью программ. Обычно я проигрываю подряд все анимации от 0 до 10 и нахожу номер нужной.
Связать кости плаща с костями модели и можно будет обойтись без редактирования самой ее анимации в mldvis. Плащ будет тянуться к ней. Если не подойдет, то придется переделывать всю анимацию.
Способ №1
Открываем модель в вар3ме, находим в "Менеджере последовательностей" спикок анимаций, находим нужную, открываем ее параметры, запоминаем интервал (диапазон кадров), например Stand [3000-4333]. Далее в "Редакторе узлов" находим нужную кость по названию, нажимаем правой редактировать узел, и в повороте, переносе и масштабировании удаляем все строки, которые попадают в диапазон кадров этой анимации.
Способ №2
Открываем модель в mdlvis, нажимаем "модули->редактор анимаций", выбираем " анимки", выбираем нужную анимацию, переключаемся на вкладку "движение", выделяем нужную кость, на линейке кадров выбираем первый кадр и с шифтом последний таким образом, чтобы выделить всю линейку, удаляем сразу все точки на линейке.
Способ №3
Конвертируем модель в текстовый формат .mdl, открываем файл в блокноте, находим блок со списком анимаций, затем блок с поворотом, переносом и масштабированием нужной кости и проделываем аналогично способу №1, в начале каждого блока указано количество строк в нем, при удалении строк нужно менять это значение.
Используй вот это, чтобы вытащить UI, потом вот этим конвертируешь в нужный формат, чтобы открыть в PS.
Русскоязычных статей по созданию UI не нашёл, но если знаешь английский, вот ссылка.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.
2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.
Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.
4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.
5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...
Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.
Это легко через Custom Value и переменние.
Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
Gerych, сюда тоже можно но вопрос будет закрыт через неделю с момента последнего ответа
ну а вообще для таких вещей стоит создать бложик и там в качестве ресурса подобное спрашивать
читай статьи
за тебя тут делать не будут
без того что в статьях ты ничего не поймёшь
для лучников нужна система отлова урона
для этого тебе надо как минимум выучить гуи
у катапульты просто повышай урон у осадного типа атаки
function MirrorCoords takes unit a returns nothing
local real x_a = GetUnitX(a)
local real y_a = GetUnitY(a)
local real x
local real y
if x_a < 0. then
set x = RAbsBJ(x_a)
else
set x = x_a - (x_a + x_a)
endif
if y_a < 0. then
set y = RAbsBJ(y_a)
else
set y = y_a - (y_a + y_a)
endif
call SetUnitX(a, x)
call SetUnitY(a, y)
endfunction
во первых .проверяем на ось Х, если меньше 0, то конвертируем функцией в противоположное значение, функция Absolute в гуи, иначе просто уменьшаем х на двойное значение самого себя
тоже самое по оси У
а затем просто присваиваем данные координаты
в гуи будет слишком криво, поэтому лучше скопируйте в шапку карты и вызывайте через кастом скрипт при покидании игрового региона
local rect R = //твоя область
local real x = GetRandomReal(GetRectMinX(R), GetRectMaxX(R))
local real y = GetRandomReal(GetRectMinY(R), GetRectMaxY(R))
Askarto,
Текстуры ландшафта находятся в файлах War3.mpq и War3x.mpq
в папке \TerrainArt\
Пример:
Распаковываешь \TerrainArt\Cityscape\City_GrassTrim.blp Перерисовываешь как надо, закидываешь в карту по этому же адресу. Город - Газон будет выглядеть так как нарисуешь :)
чтобы они ещё и окрашивали друг друга, по типу как вот здесь?
Вот это не понял.
Кто знает как накладывать текстуры друг на друга
Если это сделано средствами mdx, то тут в материале два слоя с разными текстурами. У верхнего режим фильтрации Transparent. Материалы можно редактировать через War3 Model Editor, модуль Material Manager. (Думаю, ты примерно знаешь, как =)
как импоритровать анимации мастера клинка в неё FAQ не помогло. Мне надо либо все движения перенести в модель либо только рук
Ну так не получится. Можно заменить скелет вместе с анимациями — это будет пересадка мяса. Или сделать анимацию с нуля — тут в помощь эта статья (только скелет создавать не придётся, он уже есть).
Если в текстуре есть все необходимые цвета, то можно скопировать точки и на карте текстур переместить их в правильное место. А потом сжать (не слить!) точки с разными текстурами, если требуется поместить их в одни координаты.
PhysCraft, читал, там очень мало написано, и совсем не то что я ожидал. В принципе я вроде смог прописать путь по папкам, сделал что бы играла музыка, в игре модели видно, но в редакторе нет, и как я теперь буду в редакторе ландить? Мне импорт для ландшафта нужен. Есть какой-то способ в редакторе тоже видеть?
Ни разу не делал карты "чисто стандартного жанра". Т.е. общий жанр определить можно всегда, но нужно чтобы можно было выделить что-то, чем твоя карта реально отличается от себе подобных.
Вот, глянь чуть (щас набегут хомячки с возгласами ОЛОЛО РЕКЛАМА ДОК БЛИН КАК НЕ СТЫДНА)
Все должно действовать, постоянно именно так и делаю. Триггер в студию.
P. S. Только одна оговорка: на всякий случай будет лучше, если способность, даваемая даммику, заранее будет присутствовать у какого-нибудь юнита на карте (можно нейтрального и/или не способного её скастануть), иначе иногда не исключены ситуации, когда даммик просто не кастует добавленную ему способность вообще (зависимость определить не удалось, абсолютно в одной и той же уже сохраненной и оптимизированной карте может кастовать, а может не кастовать - если не стал кастовать эту абилу в первый раз, то и всю игру - т. е. весь конкретный запуск конкретно этой карты - уже не станет, но добавлением абилы заранее нейтральному зданию, т. е. прелоадом, лечится надёжно).
не стоит использовать ждать
создаём для юнита целочисленную переменную time
1 триггер
Событие
периодическое событие - каждые 0.1 сек.-
Условие
time > 0
Действие
set time = time - 1
если time == 0 то понизить уровень способности "незаметность" для "герой" до 1
2 триггер
Событие
боевая единица - юнит атакован
Условие
Атакующий юнит=герой или Атакованный юнит=герой
Действие
set time=30
боевая единица - повысить уровень способности "незаметность" для "герой" до 2
не забудь закрыть вопрос (для этого выбери лучший ответ)
Ige, да о чем вы говорите. ИМХО, самое оптимальное предложение содержится в 3 комментарии.
И еще тут много лишних функций. Да и просто первый признак jass - отсутствие бж за исключением дебага( хоть мои слова кажется трепом и выпендрежем, но без чистого скрипта на нативах.... )
Воу... Джаз не обязательно изучать, всё это можно сделать и на ГУИ, тем более такую простую способность. На этом сайте есть тема "Заклинания на заказ". Заказывай, жди, получай, изучай. Если прям горит, могу сделать для тебя сам.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.
Стандартный ИИ никак, только если вы замените канал какими-то другим скиллом, который юзает ИИ в схожей ситуации ( если нужно чтобы ии юзал спелл в толпе то подойдет вызов волка или стомп в качестве пустышки). Ну или совсем радикальный вариант, писать свой ИИ.
JackFastGame, старый знакомый баг с каналом из доты, лекарство только одно применять для канала ID приказа которых больше не будет ни у 1 юнита, или все способности ID приказа которых ты копируешь для канала, должны появится у юнитов и быть применены до того как твои герои выучат способность на основе канала.
Движок вара кеширует приказ и тип цели для этого приказа, поэтому триггерно невозможно отдать приказ, у него по мнению движка другой тип цели.
Нельзя применить высасывание жизни на юнита, потому что записано что для этого приказа не требуется цель...
Подробности можно спросить у DracoL1ch.
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду. Кампания - это пак карт.
а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ShowDestructable вызовет десинх, также как и любой объект не относящийся к визуализации. А вообще здесь есть статья которая так и называется GetLocalPlayer
» Администрация XGM / Восстановление аккаунта
» WarCraft 3 / Как работает гандикап
» WarCraft 3 / Stand alternate не работает
» WarCraft 3 / Анимации
» WarCraft 3 / Как сделать юнита бродячим?
» WarCraft 3 / Анимация движения
» WarCraft 3 / Выбор улучшения
» WarCraft 3 / проблема, интерфейс
» WarCraft 3 / Как создать карту большего размера?
» WarCraft 3 / Как сделать рандомного юнита
» WarCraft 3 / Текстурирование
» WarCraft 3 / Импорт тайла
» WarCraft 3 / Предел юнитов на карте
» WarCraft 3 / Редактор анимаций
» WarCraft 3 / Отображение эффектов на юните
» WarCraft 3 / Повысить рельеф
» WarCraft 3 / Обновление таймера
» WarCraft 3 / Помогите
» WarCraft 3 / Звуки модели
» WarCraft 3 / Канал
» WarCraft 3 / проблема с триггером
» WarCraft 3 / GetLocalPlayer и ShowDestructable